Computer-implemented methods and systems for a color generator

ABSTRACT

One exemplary embodiment involves a computer-implemented method that comprises rendering, by a processor, an interface comprising a synopsis node and a plurality of configurable component nodes, each of the component odes corresponding to a respective color, and the synopsis node having a color that is a combination of the colors of the synopsis node. The method additionally includes, receiving, by the processor, input changing an influence of a first component node and determining, by the processor, a change in the color of the synopsis node based on the received input, wherein the change represents a combination of the colors of the component nodes. Additionally, the method includes rendering, by the processor, the changed synopsis node color in the synopsis node.

FIELD

This disclosure relates generally to computer software and moreparticularly relates to the creation, modification, use, anddistribution of electronic content.

BACKGROUND

Conventional color palettes and color pickers that are available throughcomputer applications and/or operating systems present a wide array ofcolors in a grid or list format. The colors may be arranged at random orin specific order allowing for the selection from a finite set ofcolors. Additionally, the number of colors presented in a color palettemay vary based on a pixel depth of a computer system. For example, thenumber of colors available for selection from the finite set may rangefrom 16 to 256 colors. However, identifying new colors possibilities canbe limiting when the colors are arranged as a grid, and creating a newcolor not presented in the color palette that is contextual to thecurrent color set or a selection thereof may be difficult.

SUMMARY

One exemplary embodiment involves rendering an interface that includes asynopsis node and one or more configurable component nodes. Each of thecomponent nodes may correspond to a color and the synopsis node may be acombination of the colors of the component nodes. The embodimentinvolves receiving an input for changing an influence of a firstcomponent node and determining a change in the color of the synopsisnode based on the received input. The changed color may representcombination of the colors of the component nodes. Additionally, theembodiment involves rendering the changed synopsis node color in thesynopsis node.

These illustrative features are mentioned not to limit or define thedisclosure, but to provide examples to aid understanding thereof.Additional embodiments are discussed in the Detailed Description, andfurther description is provided there. Advantages offered by one or moreof the various embodiments may be further understood by examining thisspecification or by practicing one or more embodiments presented.

BRIEF DESCRIPTION OF THE FIGURES

The file of this patent contains at least one drawing executed in color.Copies of this patent with color drawing(s) will be provided by thePatent and Trademark Office upon request and payment of the necessaryfee. These and other features, aspects, and advantages of the presentdisclosure are better understood when the following Detailed Descriptionis read with reference to the accompanying drawings, where:

FIG. 1 is a block diagram depicting exemplary computing devices in anexemplary computing environment for implementing certain embodiments;

FIG. 2 illustrates an exemplary user interface depicting a colorgenerator with a first component node located within a boundary;

FIG. 3 illustrates an exemplary user interface depicting a colorgenerator with the first component node adjusted to be located closer toa synopsis node;

FIG. 4 illustrates an exemplary user interface depicting a colorgenerator with the first component node and a second component nodelocated within the boundary;

FIG. 5 illustrates an exemplary user interface depicting a colorgenerator with the first component node, the second component node, anda third component node located within the boundary;

FIG. 6 illustrates an exemplary user interface depicting a colorgenerator with pushing the second component node out of the boundary inresponse to a user selection;

FIG. 7 illustrates an exemplary user interface depicting a colorgenerator with the first component node and the third component nodewithin the boundary;

FIG. 8 illustrates an exemplary user interface depicting a colorgenerator operating in an additive mode;

FIG. 9 illustrates an exemplary user interface depicting a colorgenerator operating in a blurred mode;

FIG. 10 is a flowchart illustrating an exemplary method of forgenerating a color based on a combination of a set of colors; and

FIG. 11 is a flowchart illustrating an exemplary method of adjusting therelevant component nodes on the user interface based on a userselection.

DETAILED DESCRIPTION

Methods and systems are disclosed for graphically depictingrelationships between input colors to visualize and create combinedcolors. Discloses are embodiments for rendering a color generator togenerate a color based on a plurality of component colors. The colorgenerator includes one or more component nodes that are each associatedwith one of the component colors. Additionally, the color generatorincludes a synopsis node that is associated with a synopsis colordetermined from a combination of at least two of the component colors.In one embodiment, a user manipulates the component nodes to select thecomponent colors and adjust the location of the component nodes withrespect to the synopsis node. In response, the color generator mayadjust the influence by the component color on the synopsis color. Forexample, the influence by each of the component colors on the synopsiscolor is based at least in part on a distance between the respectivecomponent node and the synopsis node and a location of the componentnode with respect to the synopsis node.

Additionally, each component node is associated with a halo radiatingfrom the component node. In one embodiment, the radius of the halocorresponds to the distance between the respective component node andthe synopsis node. The halo has a halo color that corresponds to thecomponent color. Further, the halo color may have a luminosity thatcorresponds to the distance between the respective component node andthe synopsis node. In one embodiment, the luminosity is determined by aweighted sum of the nonlinear red, green, and blue (RGB) signals. (Thismay be applied to any color value with its own RGB value combinations).In one embodiment, the luminosity of the halo color determines abrightness and/or saturation of the halo color. For example, theluminosity of the halo color may increase as the distance between therespective component node and the synopsis node decreases. Statedanother way, the luminosity of the halo color increases as the proximityof the component node to the synopsis node increases. Additionally, theluminosity of the halo color corresponds to a percentage of thecomponent color that will be applied to create the synopsis color, aswill be described. Thus, in one embodiment, adjusting the distancebetween one of the component nodes and the synopsis node causes a changein the size of the halo of the component node and in the luminosity ofthe color of the halo.

The halos of the component nodes may intersect and create a convergencearea that has a convergence color. For example, two or more of the halosassociated with the component nodes may converge creating a convergencecolor that is a combination of the halo colors. In one embodiment, thecolor of the synopsis color corresponds to the convergence color. Forexample, the synopsis color may correspond to the convergence color of aconvergence that results when all of the halos of the component nodesconverge. In another embodiment, another convergence color may beselected where the selected convergence color results from a convergenceof only a subset of the all of the halos.

These illustrative examples are given to introduce the reader to thegeneral subject matter discussed here and are not intended to limit thescope of the disclosed concepts. The following sections describe variousadditional embodiments and examples with reference to the drawings inwhich like numerals indicate like elements.

FIG. 1 is a block diagram depicting an exemplary computing device in anexemplary computing environment for implementing certain embodiments.The methods and systems disclosed herein are also applicable on othercomputing systems and environments. The environment shown in FIG. 1includes a computing device 103 having a memory 106, a processor 109, abus 113, a display 116, and a plurality of input/output devices 119. Inone embodiment, the input/output device 119 may include a number ofexternal or internal devices such as a mouse, a CD-ROM, DVD, a keyboard,a display, audio speakers, one or more microphones, or any other inputor output devices. Additionally, the computing device 103 may be apersonal computing device, a mobile device, or any other type ofelectronic devices appropriate for providing one or more of the featuresdescribed herein.

As used here, the term “device” refers to any computing or otherelectronic equipment that executes instructions and includes any type ofprocessor-based equipment that operates an operating system or otherwiseexecutes instructions. A device will typically include a processor 109,which may comprise one or more processors, that executes programinstructions and may include external or internal components such as amouse, a CD-ROM, DVD, a keyboard, a display, or other input or outputequipment. Examples of devices are personal computers, digitalassistants, personal digital assistants, cellular phones, mobile phones,smart phones, pagers, digital tables, laptop computers, Internetappliances, other processor-based devices, and television viewingdevices. The exemplary computing device 103 may be used as specialpurpose computing devices to provide specific functionality offered byapplications and modules.

As used herein, the term “application” refers to any programinstructions or other functional components that execute on a device. Anapplication may reside in the memory 106 of a device that executes theapplication. As is known to one of skill in the art, such applicationsmay be resident in any suitable computer-readable medium and execute ona suitable processor. For example, as shown the computing device 103 hasa computer-readable medium such as the memory 106 coupled to theprocessor 109 that executes computer-executable program instructionsand/or accesses stored information. Such a processor 109 may include amicroprocessor, an ASIC, a state machine, or other processor, and can beof any number of computer processors. Such processors include, or may bein communication with, a computer-readable medium which storesinstructions that, when executed by the processor, cause the processorto perform the steps described herein.

The memory 106 represents a computer-readable medium that may comprise,but is not limited to, an electronic, optical, magnetic, or otherstorage device capable of providing a processor with computer-readableinstructions. Other examples comprise, but are not limited to, a floppydisk, CD-ROM, DVD, magnetic disk, memory chip, ROM, RAM, an ASIC, aconfigured processor, optical storage, magnetic tape or other magneticstorage, or any other medium from which a computer processor can readinstructions. The instructions may comprise processor-specificinstructions generated by a compiler and/or an interpreter from codewritten in any suitable computer-programming language, including, forexample, C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, andActionScript.

In one embodiment, the memory 106 includes a color generationapplication 123 that renders the color generator in the user interface126 displayed on the display 116. Included in the color generator is aselected color 129, a synopsis node 133, and one or more component nodes136. Each of the component nodes 136 is associated with a componentcolor 139. In one embodiment, the synopsis node 133 depicts the selectedcolor 129 that is generated based on the component colors 139 of the oneor more component nodes 136. For instance, the selected color 129represents a convergence color derived from the convergence of two ormore halos associated with the component nodes 136, as will bedescribed.

Once derived, the selected color 129 may be exported for use by one ormore applications. For example, the selected color 129 may be saved andtransferable for use in other applications. In one embodiment, theselected color 129 may be exported for use in applications such asAdobe® Kuler®, Adobe® Photoshop®, Adobe® Illustrator®, Microsoft®Windows®, Microsoft® Paint®, Microsoft® Office®, Google® SketchUp,AutoCAD®, and/or other applications. Additionally, the approachdescribed herein for deriving the selected color 129 may be used as aneducational tool for graphically depicting how colors are derived fromone or more input and/or component colors 139.

FIG. 2 shows one example of a user interface 126 according to certainembodiments of the present disclosure that is rendered on the display116. In this example, the user interface 126 depicts the color generatorrendered by the color generation application 123. Shown in FIG. 2 are asynopsis node 133; component nodes, 136 a, 136 b, 136 c, 136 d, and 136d; component edges, 203 a, 203 b, 203 c, 203 d, and 203 e; an outercolor generator boundary 206; a color generator midpoint 209; an innercolor generator boundary 213; and a halo 216 a. Each of the componentedges 203 are associated with a respective one of the component nodes136. Additionally, the halo 216 a is associated with the component node136 a. Further, FIG. 2 depicts only a portion of the color generator.For example, the outer color generator boundary 206, the color generatormidpoint 209, and the inner color generator boundary 213 form a completecircle and/or another shape. Additional component nodes 136 may bedisplaced around the color generator, some of which are not depicted inFIG. 2.

In one embodiment, the size of the halo 216 a is based on the length ofthe component edge 203 a associated with the component node 136 a, i.e.,the distance from the synopsis node 133. For example, the halo 216 a mayhave a radius that corresponds to the length of the component edge 203a. The length of the component edge 203 a may be measured from themidpoint of the component node 136 a to the midpoint of the synopsisnode 133. Additionally, the halo 216 is associated with a halo colorthat corresponds to the component color 139 of the component node 136 a.In one embodiment, the luminosity of the halo color for the halo 216 adepends on the distance between the component node 136 a and thesynopsis node 133. For example, the length of component edge 203 a(i.e., the radius of the halo 216 a) may determine the luminosity of thehalo color. To this end, a smaller length for the component edge 203 a(ie, a smaller radius of the halo 216 a) may indicate a higherluminosity of the halo color than a larger length for the component edge203 a. Thus, the halo color is brighter when the component node 136 a iscloser the component node 203 a is to the synopsis node 133. As shown inFIG. 2, the component node 136 a is located near the color generatormidpoint 209 and is thus nearly at the midpoint between the outer colorgenerator boundary 206 and the inner color generator boundary 213.Accordingly, the luminosity of the halo color for the halo 216 a is near50%.

Additionally, the halo 216 associated with each component node 136 maybe visible once the component node 136 is adjusted to be within theouter color generator boundary 206. For example, in FIG. 2, thecomponent node 136 a is located inside of the outer color generatorboundary 206 and thus the halo 216 a associated with the component node136 a is visible. However, component nodes 136 b, 136 c, 136 d, and 136e are located outside the outer color generator boundary 206 andtherefore their respective halos are not visible. Further, as shown inFIG. 2, the selected color 129 (FIG. 1) as indicated by the synopsisnode 133 corresponds to the halo color of the halo 216 a. The selectedcolor 129 corresponds to the convergence color of the convergence of twoor more halos 216 associated with component nodes 136 located within theouter color generator boundary 206. In this example, only one halo 216is visible and therefore, the selected color 129 corresponds to the halocolor of the visible halo 216.

A user manipulating the user interface may adjust the location of thecomponent node 136 a or any of the other component nodes 136 withrespect to the synopsis node 133. For example, the user may adjust thelocation of the component node 136 a via a touch input device, mouseand/or another input device by selecting the component node 136 a andindicate a location to where the component node 136 a should beadjusted. In another embodiment, the user may drag the component node136 a to the desired location via the touch input device. Additionally,the user may select a component color 139 of the component node 136 avia the touch input device and/or other input device. Further, the usermay simultaneously adjust the location of more than one of the componentnodes 136 via the touch input device, mouse, and/or another inputdevice.

FIG. 3 shows one example of a user interface 126 according to certainembodiments of the present disclosure that is rendered on the display116. In this example, the user interface 126 depicts the color generatorrendered by the color generation application 123 (FIG. 1). In thisexample, the user interface 126 depicts a synopsis node 133, componentnodes, 136 a, 136 b, 136 c, 136 d, and 136 e, component edges, 203 a,203 b, 203 c, 203 d, and 203 e, an outer color generator boundary 206, acolor generator midpoint 209, a inner color generator boundary 213, anda halo 216 a similar to FIG. 2. The luminosity of the halo color of ahalo 216 associated with a component node 136 appearing on or within theinner color generator boundary 213 may be 100% while the luminosity ofthe halo color of a halo 216 associated with a component node 136appearing on or outside of the outer color generator boundary 206 may be0%. Here, the component node 136 a appears closer to the synopsis node133 than in FIG. 2 and thus the halo color of the halo 216 a appearsmore saturated than the halo color of the halo 216 a of FIG. 2. Forexample, a user manipulating the user interface 126 may drag thecomponent node 136 a to be closer to the synopsis node 133 via a touchinput device. In response, the luminosity of the halo color of the halo216 a may be approximately 90% resulting from the distance between thecomponent node 136 a and the synopsis node 133. Additionally, theselected color 129 (FIG. 1) depicted in the synopsis node 133corresponds to the halo color of the halo 216 a. The synopsis color 133in FIG. 3 is more intense than the synopsis color 133 in FIG. 2 becausethe halo color of the halo 216 a has a higher luminosity. Further, thehalo 216 a is smaller than in FIG. 2 because the component edge 203 a issmaller thereby reducing the radius of the halo 216 a.

FIG. 4 shows one example of a user interface 126 according to certainembodiments of the present disclosure that is rendered on the display116. In this example, the user interface 126 depicts the color generatorrendered by the color generation application 123 (FIG. 1). As shown inFIG. 4, the user interface 126 depicts a synopsis node 133; componentnodes 136 a, 136 b, 136 c, 136 d, and 136 e; component edges 203 a, 203b, 203 c, 203 d, and 203 e; an outer color generator boundary 206; acolor generator midpoint 209; a inner color generator boundary 213; anda halo 216 a similar to FIG. 3. Additionally, the user interface 126 ofFIG. 4 depicts a halo 216 c associated with the component node 136 c anda convergence 403 formed from the convergence of the halo 216 aassociated with the component node 136 a and the halo 216 c associatedwith the component node 136 c.

In this example, the component node 136 c appears within the outer colorgeneration boundary 206 and thus the halo 216 c associated withcomponent node 136 c is visible. For example, the luminosity of the halocolor for the halo 216 c is greater than 0% if the component node 136 cis located within the outer color generator boundary 206, as discussedabove. Here, the component node 136 c appears to be located close to theinner color generator boundary 213 and thus the luminosity of the halocolor for the halo 216 c is closer to 100%. For instance, the luminosityof the halo color for the halo 216 c is similar to the luminosity of thehalo color for the halo 216 a because the distance between the componentnode 136 c and the synopsis node 133 is similar to the distance betweenthe component node 136 a and the synopsis node 133.

Additionally, FIG. 4 depicts the convergence 403 that forms when thehalo 216 a converges with the halo 216 c. The convergence 403 isrepresented by the area where both the halo 216 a and the halo 216 c beintersect and has a convergence color that represents a combinationand/or a mixture of the halo color of the halo 216 a and the halo colorof the halo 216 c. For example, the halo color of the halo 216 a is blueand the halo color of the halo 216 c is yellow. Accordingly, theconvergence color of the convergence 403 is green because thecombination of blue and yellow is green, as can be appreciated. Further,the luminosity of the convergence color corresponds to the luminosity ofthe halo colors of the respective halos 216. As described above, theluminosity of the halos 216 a and 216 c is near 100% based on thedistance between the respective component nodes 136 a and 136 c and thesynopsis node 133. The convergence color may be modified by adjustingthe luminosity of the halo colors of the halos 216 forming theconvergence 403. For example, the luminosity of the halo colors of thehalos 216 may be adjusted by moving the respective component nodes 136of the halos 216 closer to and/or farther away from the synopsis node133. In one embodiment, adjusting the luminosity of the halo colorseffects the influence of the halo color on the convergence color. Forexample, increasing the luminosity of the halo color increases theinfluence of the halo color on the convergence color and decreasing theluminosity of the halo color decreases the influence of the halo coloron the convergence color.

As a further example, the component node 136 a may be adjusted to becloser to the synopsis node 133 thereby increasing the luminosity of theblue halo color of the halo 216 a. An increased luminosity of the bluehalo color of the halo 216 a may make the halo color of the halo 216 a abrighter blue. Additionally, the halo 216 a may be smaller as the radiusof the halo 216 a decreases when the component node 136 a moves closerto the synopsis node 133. Accordingly, the shape of the convergence 403may change based on the smaller halo 216 a and the convergence color ofthe convergence 403 may be a combination of the brighter blue of thehalo 216 a and the yellow of the halo 216 c.

Additionally, the selected color 129 as depicted in the synopsis node133 corresponds to the convergence color of the convergence 403. Aspreviously discussed, the selected color 129 corresponds to theconvergence color of the convergence involving all of the halos 216associated with component nodes 136 located within the outer colorgenerator boundary 206. As shown in FIG. 4, only two halos 216 aredepicted as only two of the component nodes 136 are located within theouter color generator boundary 206. Therefore, the selected color 129corresponds to the convergence color of the convergence 403 formed bythe halos 216 associated with component nodes 136 a and 136 c.

FIG. 5 shows one example of a user interface 126 according to certainembodiments of the present disclosure that is rendered on the display116. In this example, the user interface 126 depicts the color generatorrendered by the color generation application 123 (FIG. 1). As shown inFIG. 5, the user interface 126 depicts a synopsis node 133; componentnodes 136 a, 136 b, 136 c, 136 d, and 136 e; component edges, 203 a, 203b, 203 c, 203 d, and 203 e; an outer color generator boundary 206, acolor generator midpoint 209; a inner color generator boundary 213;halos 216 a and 216 c; and a convergence 403. Additionally, the userinterface 126 of FIG. 5 depicts a halo 216 e associated with thecomponent node 136 e and convergences 503 and 506.

In this example, the user may have adjusted the component node 136 e tobe located within the outer color generator boundary 206. For example,the user may have adjusted the component node 136 e by manipulating theuser interface 126 to via a touch input device and/or other input deviceto select the component node 136 e and indicate the new location to bewithin the outer color generator boundary 206. Due to the component node136 e being located within the outer color generator boundary 206, thehalo 216 e associated with the component node 136 e becomes visible. Forexample, the luminosity of the halo 216 e becomes greater than zero whenthe component node 136 e is on or within the outer color generatorboundary 206. Further, the luminosity of the halo color associated withthe halo 216 e depends on the distance between the correspondingcomponent node 136 e and the synopsis node 133. As shown in FIG. 5, thecomponent node 136 e appears near the color generator midpoint 209 andthus the luminosity of the halo color of the halo 216 e is approximately50%. Additionally, the halo 216 e has a radius defined by the length ofthe component edge 203 e. In this example, the component edge 203 eassociated with the component node 136 e is larger than the componentedges 203 a and 203 c associated with the component nodes 136 a and 136c. Accordingly, the halo 216 e associated with the component node 136 eis larger than the halos 216 a and 216 c associated with the componentnodes 136 a and 136 c.

The convergence 403 is formed from the convergence of the halo 216 aassociated with the component node 136 a and the halo 216 c associatedwith the component node 136 c, as described above. As shown in FIG. 5,the convergence 403 is partially masked by convergence 503 in partbecause the halo 216 e does not reach the convergence 403. Inparticular, the convergence 503 is formed from the convergence of thehalo 216 a associated with the component node 136 a, the halo 216 cassociated with the component node 136 c, and the halo 216 e associatedwith the component node 136 e. The convergence color of the convergence503 is a combination of the halo colors of the halos 216 a, 216 c, and216 e. For instance, the convergence color is a combination of blue,yellow, and orange.

Additionally, the convergence color of the convergence 503 has aluminosity that corresponds to the luminosity of the halo colorsassociated with the halos 216 involved in the convergence 503. Forexample, the luminosity of the halo colors of a halo 216 corresponds toa percentage of the component color 139 (FIG. 1) associated with therespective halo 216 that will be applied to create the synopsis color133. As shown in FIG. 5, the blue halo color of the halo 216 a and theyellow halo color of the halo 216 c are of a luminosity near 100% basedon the respective distance between the associated component nodes 136 aand 136 c and the synopsis node 133, as described above. The orange halocolor of the halo 216 e is of a luminosity near 50% based on thedistance between the component node 136 e and the synopsis node 133, asdescribed above. The luminosity of each of the halo colors of each ofthe respective halos 216 may be adjusted to effect a change in theconvergence color, as described above. For example, the correspondingcomponent nodes 136 may be adjusted to be closer to and/or farther awayfrom the synopsis node 133 to adjust the luminosity of the halo color.

The convergence 506 is formed from the convergence of the halo 216 aassociated with the component node 136 a and the halo 216 e associatedwith the component node 136 e. In this example, the convergence 506 maybe of a larger area than the convergence 403 and 503 based in part onthe size of the halo 216 e. The halo 216 e is large than the halos 216 aand 216 c because the component node 136 e associated with the halo 216e is located farther away from the synopsis node 133 than the componentnodes 136 a and 136 c. Accordingly, the radius of the halo 216 e islarger than the radii of the halos 216 a and 216 c.

Additionally, convergence color of the convergence 506 is based on thecombination of the halo color of the halo 216 a and the halo color ofthe halo 216 e. For instance, the convergence color is a combination ofthe blue halo color of the halo 216 a and the orange halo color of thehalo 216 e. Further, the luminosity of the convergence color of theconvergence 506 is based on the luminosity of the halos 216 a and 216 e,as described above. The convergence color of the convergence 506 may beinfluenced by adjusting the luminosity of the halo colors, as describedabove. Additionally, the selected color 129 as depicted by the synopsisnode 133 does not reflect the convergence color of the convergence 506.As discussed above, the selected color 129 represents the colorassociated with the convergence of all of the halos 216 associated withcomponent nodes 136 located within the outer color generator boundary206. The convergence 506 does not involve halo 216 c and therefore theselected color does not correspond to the convergence color of theconvergence 506.

In one embodiment, the convergence color of the convergence 506 may bemanually selected to be the selected color 129. For example, a user mayselect the convergence color of the convergence 506 via a touch inputdevice, a mouse and/or another input device by clicking on theconvergence 506. In response, the synopsis node 133 may adopt theconvergence color of the convergence 506 and push the component nodes136 that are not involved with the convergence 506 outside of the outercolor generator boundary 206, as will be described with respect to FIGS.6 and 7.

FIG. 6 shows one example of a user interface 126 according to certainembodiments of the present disclosure that is rendered on the display116. In this example, the user interface 126 depicts the color generatorrendered by the color generation application 123 (FIG. 1). As shown inFIG. 6, the user interface 126 depicts a synopsis node 133; componentnodes 136 a, 136 b, 136 c, 136 d, and 136 e; component edges, 203 a, 203b, 203 c, 203 d, and 203 e; an outer color generator boundary 206, acolor generator midpoint 209; a inner color generator boundary 213;halos 216 a, 216 c, and 216 e; and a convergences, 403, 503, and 506.

As described above, a user may select the convergence color of aconvergence that does not involve all of the halos 216 associated withthe component nodes 136 located within the outer color generatorboundary 206. In response, the color generation application 123 (FIG. 1)pushes out the component nodes 136 associated with the halos 216 notinvolved with the selected convergence. FIG. 6 represents a snap shot ofthe sequence of events involved when the convergence color of theconvergence 506 is selected by the user. The component node 136 c is notinvolved in the convergence 506 and thus when the convergence 506 isselected, the color generation application 123 pushes the component node136 c to be outside of the outer color generator boundary 206.

As shown in FIG. 6, the color generation application 123 is in theprocess of pushing the component node 136 c to be outside of the outercolor generator boundary 206. As the component node 136 c gets fartheraway from the synopsis node 133, the radius of the halo 216 c increasesto correspond with the component edge 203 c. Thus the size of the halo216 c increases and occupies a larger space. Accordingly, the size ofthe convergences 403 and 503 may increase. Additionally, the luminosityof the halo color of the halo 216 c decreases as the component node 136c gets further away from the synopsis node 133. Thus, the halo 216 c hasless of an influence on the convergence color of the convergences 403and 503. For example, the halo color of the halo 216 c may be a lessintense yellow as the luminosity of the yellow halo color decreases. Thedecrease in the luminosity of the halo color indicates that a smallerpercentage of the component color 139 associated with the halo 216 cwill be applied. Accordingly, the convergence color of the convergence403 changes to reflect less of an influence being effected by the halo216 c. Similarly, the convergence color of the convergence 503 changesto reflect less of an influence being effected by the halo 216 c.

Additionally, the size of the selected convergence 506 may be adjustedto correspond with the increased size of the halo 216 c associated withthe component node 136 c being pushed out. For example, the halo 216 cis not involved in the selected convergence 506 and thus the size of theconvergence 506 may decrease as the halo 216 c increases. Further, theconvergence color of the convergence 506 is not affected by the lessintense yellow halo color of the halo 216 c as the halo 216 c is notinvolved in the convergence 506.

The selected color 129 depicted by the synopsis node 133 reflects theconvergence color of the convergence 503. As described above, theselected color 129 corresponds to the convergence involving all of thehalos 216 associated with component nodes 136 located within the outercolor generator boundary 206. As shown in FIG. 6, the component node 136c is still located within the outer color generator boundary 206 andtherefore the convergence 503 involves all of the halos 216 a, 216 c,and 216 e. Accordingly, the selected color 129 corresponds to theconvergence color of the convergence 503.

FIG. 7 shows one example of a user interface 126 according to certainembodiments of the present disclosure that is rendered on the display116. In this example, the user interface 126 depicts the color generatorrendered by the color generation application 123 (FIG. 1). As shown inFIG. 7, the user interface 126 depicts a synopsis node 133; componentnodes 136 a, 136 b, 136 c, 136 d, and 136 e; component edges, 203 a, 203b, 203 c, 203 d, and 203 e; an outer color generator boundary 206, acolor generator midpoint 209; a inner color generator boundary 213;halos 216 a and 216 e; and a convergence 506.

Shown in FIG. 7 is a snapshot after the color generation application 123has completely pushed out the component node 136 c to be outside of theouter color generator boundary 206. Therefore, the component node 136 cis no longer associated with a visible halo 216. Accordingly, anyconvergences involving the halo 216 c (FIG. 6) previously associatedwith the component node 136 c are no longer present. The selectedconvergence 506 remains visible after the component node 136 c is pushedoutside of the outer color generator boundary 206. Additionally, theselected color 129 depicted by the synopsis node 133 corresponds to theconvergence color of the convergence 506.

FIG. 8 shows one example of a user interface 126 according to certainembodiments of the present disclosure that is rendered on the display116. In this example, the user interface 126 depicts the color generatorrendered by the color generation application 123 (FIG. 1). The userinterface 126 of FIG. 8 depicts the color generator operating in anadditive manner where the colors associated with the component nodes 136(FIG. 1) represent colored light sources. Additive light mayconventionally be seen in computer monitors and televisions. Incontrast, FIGS. 2-7 depict the color generator operating in asubtractive manner where light is removed to create the colors. Forexample, subtractive colors may conventionally be seen in paints,pigments, color filters, prints, photography, and/or other exampleswhere light is subtracted.

Shown in FIG. 8 is settings panel 803 that includes a light switch 806and a blur switch 809. In one embodiment, a user may hover over aportion of the user interface 126 via a touch input device and/or another input device and in response, the color generation application 123may render the settings panel 803. In another embodiment, the user maymanipulate the user interface 126 in some other manner, such as, byclicking a component on the user interface 126 and/or striking a key ora combination of keys on a keyboard to request that the settings panel803 be rendered.

In this example, the light switch 806 is shown as being in the “on”position. Accordingly, the color generator is shown as operating in theadditive mode. The halo colors of the halos shown in FIG. 8 differ fromthe halo colors of the halos shown in FIG. 7. Additionally, theconvergence color of the convergence involving the halos in FIG. 8differs from the convergence color of the convergence involving thehalos in FIG. 7. In one embodiment, the difference in the halo colorsmay be attributed to the mode of operation being additive mode insteadof a subtractive mode. Thus, the color generation application 123 mayprovide for the color generator to access and generate colors for adifferent spectrum of colors via the additive and subtractive modes.

FIG. 9 shows one example of a user interface 126 according to certainembodiments of the present disclosure that is rendered on the display116. In this example, the user interface 126 depicts the color generatorrendered by the color generation application 123 (FIG. 1). As shown inFIG. 9, the user interface 126 depicts a synopsis node 133; componentnodes 136 a, 136 b, 136 c, 136 d, and 136 e; component edges, 203 a, 203b, 203 c, 203 d, and 203 e; the outer color generator boundary 206, thecolor generator midpoint 209; the inner color generator boundary 213;halos 216 a and 216 e; the convergence 506; the settings panel 803, thelight switch 806, and the blur switch 809.

The user interface 126 of FIG. 9 depicts the color generator operatingin a blur mode. In one embodiment, a user may hover over a portion ofthe user interface 126 via a touch input device and/or an other inputdevice and in response, the color generation application 123 may renderthe settings panel 803. In another embodiment, the user may manipulatethe user interface 126 in some other manner, such as, by clicking acomponent on the user interface 126 and/or striking a key or acombination of keys on a keyboard to request that the settings panel 803be rendered.

In this example, the blur switch 809 is shown as being in the “on”position. Accordingly, the color generator is shown as operating in blurmode. Responsive to a request to operate in blur mode, the colorgeneration application 123 blurs the halos 216 of the component nodes136 located within the outer color generator boundary 206. In oneembodiment, the outer edges of the halos 216 a and 216 e are blurred andthus appear granular. However, the center portions of the halos 216 aand 216 e are not blurred and maintain a solid consistency. In oneembodiment, an array of convergence colors may be associated with theconvergence 506. For instance, blurred portions of the halos 216 a and216 e may create a convergence color that differs from solid portions ofthe halos 216 a and 216 e. Additionally, a solid portion of the halo 216a may converge with a blurred portion of the halo 216 e to createanother convergence color. Similarly, a solid portion of the halo 216 emay converge with a blurred portion of the halo 216 a to create yetanother convergence color. The halos 216 a and 216 e may exhibit varyingdegrees of the blurred effect thereby influencing the convergence colorbased on the degree of the blurred effect. Therefore, the convergencecolor of the convergence 506 varies at within the convergence area basedon the degree of the blurred effect of each of the halos 216 forming theconvergence.

Additionally, the selected color 129 (FIG. 1) is depicted in thesynopsis node 133. In one embodiment, the selected color 129 may be theconvergence color at a portion of the convergence 506 where the halos216 a and 216 e forming the convergence 506 appear in a solid andconsistent form. In another embodiment, the selected color 129 may bethe convergence color at another portion of the convergence 506 wherethe halos 216 a and/or 216 e forming the convergence 506 appear blurred.A user manipulating the user interface 126 may select any of theconvergence colors formed by the convergence 506 via the blurred effectto be the selected color 129.

FIG. 10 is a flowchart that provides one example of the operation of aportion of the color generation application 123 according to certainembodiments. It is understood that the flowchart of FIG. 10 providesmerely an example of the many different types of functional argumentsthat may be employed to implement the operation of the portion of thecolor generation application 123 as described herein. As an alternative,the flowchart of FIG. 10 may be viewed as depicting an example of stepsof a method implemented in the computing device 103 (FIG. 1) accordingto one or more embodiments.

Beginning with step 1003, the color generation application 123 renders auser interface 126 that includes a color generator on a display 116 ofthe client device 103. The color generator comprises a synopsis node 133and a plurality of component nodes 136. Each component node isassociated with a halo 216 having a halo color that corresponds to acomponent color 139 of the respective component node 136 and a radiusthat corresponds to the distance between the respective component node136 and the synopsis node 133. Additionally, the halo color of each halo216 may be associated with a luminosity that corresponds to the distancebetween the respective component node 136 and the synopsis node 133. Inone embodiment, only the halos 216 associated with component nodes 136appearing within an outer color generator boundary 206 (FIG. 2) may berendered on the display 116.

Next, in step 1006, the color generation application 123 receives aninput to change an influence of one or more of the component nodes 136on the synopsis color of the synopsis node 133. In one embodiment, theinput to change the influence comprises an input to change theluminosity of the halo color of the halo 216 associated with thecomponent node 136, an input to change a distance between the componentnode 136 and the synopsis node, an input to change a size of the halo216 associated with the component node 136, and/or an input to change aposition of the component node 136 with respect to the synopsis node133. In response, the color generation application 123 may perform therequested change thereby changing the influence of the component node136 on the synopsis color of the synopsis node 133.

In step 1009, the color generation application 123 determines a changein the synopsis color based on the received input. As described above,the synopsis color may be the selected color 129 that corresponds to aconvergence color of a convergence involving the halos 216 of all of thecomponent nodes 136 located within the outer color generator boundary206. Thus, adjusting any one of the luminosity of the halo colors, thedistance between the component node 136 and the synopsis node 133, thesize of any one of the halos 216, or the position of the component node136 with respect to the synopsis node 133 may influence the convergencecolor. For example, the halo color of one of the halos 216 involved inthe convergence may change when the luminosity is adjusted. Theluminosity of the halo color may depend on the distance between thecomponent node 136 and the synopsis node, as described above.Additionally, adjusting the size of the halo 216 and/or the position ofthe respective component node 136 with respect to the synopsis node 133may change the halo's 216 involvement in the convergence, therebyinfluencing the convergence color.

Then, in step 1013, the color generation application 123 may render thechanged synopsis color in the synopsis node 133. The color generationapplication 123 may adopt the synopsis color as the selected color 129that is then extracted for use in other applications, as can beappreciated. For example, the selected color 133 may be extracted foruse with Adobe® Kuler®, as discussed above.

FIG. 11 is a flowchart that provides one example of the operation of aportion of the color generation application 123 according to certainembodiments. It is understood that the flowchart of FIG. 11 providesmerely an example of the many different types of functional argumentsthat may be employed to implement the operation of the portion of thecolor generation application 123 as described herein. As an alternative,the flowchart of FIG. 11 may be viewed as depicting an example of stepsof a method implemented in the computing device 103 (FIG. 1) accordingto one or more embodiments.

Beginning with step 1103, the color generation application 123 receivesa selection of a convergence formed by at least two of halos 216 (FIG.5) each associated with a component node 136. For example, a userinterface 126 rendered on a display 116 (FIG. 1) of a client computingdevice 103 may include a number of component nodes 136 that are eachlocated within the outer color generation boundary 206 (FIG. 2). Thus,each of the component nodes 136 may be associated with a halo 216 thathas a luminosity greater than 0%, as described above. In one embodiment,the halos 216 may intersect with each other at a number of locations inthe user interface 126 to form one or more convergences. The selectedcolor 133 may be automatically depicted in the synopsis node 133 (FIG.5) as corresponding to the convergence color of a convergence involvingall of the halos 216. However, a user manipulating the user interface126 may wish to select another convergence color to be the selectedcolor 129. The user may select a convergence via a touch input device, amouse, and/or another input device and the color generation application123 may receive the selection of the convergence.

Next, in step 1106, the color generation application 123 determineswhether the convergence selected by the user involves the halos 216associated with all of the component nodes 136 located within the outercolor generation boundary 206. For example, with reference to FIG. 5,the convergence 503 involves the halos 216 of all of the component nodes136 located within the outer color generation boundary 206. Inparticular, the convergence 503 involves halo 216 a, 216 c and 216 ethat are associated with component nodes 136 a, 136 c, and 136 e,respectively, and thus the convergence color of the convergence 503 maybe automatically depicted in the synopsis node 133 as the selected color129. The user may instead desire that the selected color 129 be theconvergence color of the convergence 506. In response to receiving theselection, the color generation application 123 determines whether theselected convergence involves all of the halos 216 a, 216 c, and 216 e.In this example, the color generation application 123 determines thatonly halos 216 a and 216 e are involved in the convergence 509. Thus,the color generation application 123 determines that not all of thehalos 216 associated with component nodes 136 located within the outercolor generation boundary 206 are involved in the selected convergenceand advances to step 1109. However, if the color generation application123 determines that all of the halos 216 associated with component nodes136 located within the outer color generation boundary 206 are involvedin the selected convergence, then the color generation application 123returns to step 1103 to receive another selection.

In step 1109, the color generation application 123 identifies which ofthe halos 216 are not involved in the selected convergence. Using theabove example, the color generation application 123 identifies that thehalo 216 c is not involved in the selected convergence. Then, in step1113, the color generation application 123 adjusts the location of thecomponent nodes 136 associated with the identified halos 216 to beoutside of the color generator boundary 206. Referring to the aboveexample, the color generation application 123 pushes the component node136 c to be outside the outer color generation boundary 206, as shown inFIGS. 6 and 7. For example, the color generation application 123 mayrender the component node 136 c being pushed out of the outer colorgeneration boundary 206 as shown in FIG. 6. The halo 216 c may increasein size and the luminosity of the halo color for the halo 216 c maydecrease as the distance between the component node 136 c and thesynopsis node 133 increases, as disclosed herein, as shown in FIG. 6.The color generation application 123 may push the component node 136 cuntil the component node 136 c is outside of the outer color generationboundary 206, as shown in FIG. 7.

General

Numerous specific details are set forth herein to provide a thoroughunderstanding of the claimed subject matter. However, those skilled inthe art will understand that the claimed subject matter may be practicedwithout these specific details. In other instances, methods, apparatusesor systems that would be known by one of ordinary skill have not beendescribed in detail so as not to obscure claimed subject matter.

Some portions are presented in terms of algorithms or symbolicrepresentations of operations on data bits or binary digital signalsstored within a computing system memory, such as a computer memory.These algorithmic descriptions or representations are examples oftechniques used by those of ordinary skill in the data processing artsto convey the substance of their work to others skilled in the art. Analgorithm is a self-consistent sequence of operations or similarprocessing leading to a desired result. In this context, operations orprocessing involves physical manipulation of physical quantities.Typically, although not necessarily, such quantities may take the formof electrical or magnetic signals capable of being stored, transferred,combined, compared or otherwise manipulated. It has proven convenient attimes, principally for reasons of common usage, to refer to such signalsas bits, data, values, elements, symbols, characters, terms, numbers,numerals or the like. It should be understood, however, that all ofthese and similar terms are to be associated with appropriate physicalquantities and are merely convenient labels. Unless specifically statedotherwise, it is appreciated that throughout this specificationdiscussions utilizing terms such as “processing,” “computing,”“calculating,” “determining,” and “identifying” or the like refer toactions or processes of a computing device, such as one or morecomputers or a similar electronic computing device or devices, thatmanipulate or transform data represented as physical electronic ormagnetic quantities within memories, registers, or other informationstorage devices, transmission devices, or display devices of thecomputing platform.

The system or systems discussed herein are not limited to any particularhardware architecture or configuration. A computing device can includeany suitable arrangement of components that provide a result conditionedon one or more inputs. Suitable computing devices include multipurposemicroprocessor-based computer systems accessing stored software thatprograms or configures the computing system from a general purposecomputing apparatus to a specialized computing apparatus implementingone or more embodiments of the present subject matter. Any suitableprogramming, scripting, or other type of language or combinations oflanguages may be used to implement the teachings contained herein insoftware to be used in programming or configuring a computing device.

Embodiments of the methods disclosed herein may be performed in theoperation of such computing devices. The order of the blocks presentedin the examples above can be varied—for example, blocks can bere-ordered, combined, and/or broken into sub-blocks. Certain blocks orprocesses can be performed in parallel.

The use of “adapted to” or “configured to” herein is meant as open andinclusive language that does not foreclose devices adapted to orconfigured to perform additional tasks or steps. Additionally, the useof “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Headings, lists, and numbering includedherein are for ease of explanation only and are not meant to belimiting.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations and/or additions to the present subject matteras would be readily apparent to one of ordinary skill in the art.

That which is claimed:
 1. A computer-implemented method comprising:rendering, by a processor, an interface comprising a synopsis node and aplurality of configurable component nodes, each of the component nodescorresponding to a respective color, and the synopsis node having acolor that is a combination of the colors of the component nodes;receiving, by the processor, input changing an influence of a firstcomponent node; determining, by the processor, a change in the color ofthe synopsis node based on the received input, the changed colorrepresenting a combination of the colors of the component nodes; andrendering, by the processor, the changed synopsis node color in thesynopsis node.
 2. The method of claim 1, wherein each component node isdisplayed a respective distance from the synopsis node, wherein thedistance of each component node from the synopsis node represents aninfluence of the color of the respective component node on the color ofthe synopsis node.
 3. The method of claim 2, wherein the input changingthe influence of the first component node is input changing the distanceof the first component node from the synopsis node to change the amountof influence by the color of the first component node on the color ofthe synopsis node.
 4. The method of claim 2 further comprisingdisplaying an indicator indicating an influence boundary, the influenceboundary graphically representing a boundary between different amountsof influence between component nodes within the boundary and componentnodes outside the boundary.
 5. The method of claim 4, wherein the colorof synopsis node is a combination of only the colors of the componentnodes that are within the boundary generator boundary.
 6. The method ofclaim 4 further comprising displaying a second distance indicatorindicating a second influence boundary, wherein: the influence ofcomponent nodes within the first influence boundary is greater thancomponent nodes within the second influence boundary but not within thefirst influence boundary; and the influence of component nodes withinthe second influence boundary is greater than component nodes not withinthe second influence boundary.
 7. The method of claim 4, wherein thecomponent nodes extend in a radial manner from the synopsis node andeach one of the component nodes are connected to the synopsis node witha graphical representation.
 8. The method of claim 1, wherein a colorfor each of the component nodes is individually selected.
 9. The methodof claim 1, wherein each component node is associated with a halo, thehalo having a halo color that corresponds to the color associated withthe component node, the halo having a radius that corresponds to adistance between the component node and the synopsis node and aluminosity of the halo color that corresponds to the distance.
 10. Thecomputer-implemented method of claim 9, wherein the luminosity increasesas the component node is adjusted to be closer to the synopsis node. 11.The computer-implemented method of claim 9, further comprising onlyrendering the halo of each component node located within a predeterminedcolor generator boundary.
 12. The method of claim 1, wherein the inputchanging the influence of the first component node comprises a requestto adjust a distance between a component node and the synopsis node,wherein adjusting the distance results in a shifting of the componentnode.
 13. The method of claim 12, wherein the shifting comprisesrendering an adjustment of the radius of a halo associated with thecomponent node to correspond to the requested distance.
 14. The methodof claim 12, wherein the shifting comprises rendering an adjustment ofthe luminosity of the halo color associated with the component node tocorrespond to the requested distance.
 15. The method of claim 12,further comprising rendering a plurality of convergences of the halosassociated with at the component nodes when the halos intersect, eachconvergence having a convergence color based at least in part on thehalo colors of the intersecting halos.
 16. The method of claim 15further comprising: receiving an input selecting a convergence;identifying a convergence color associated with the selectedconvergence; changing the color of the synopsis node to the identifiedconvergence color; and rendering the synopsis node with the changedcolor and changed component nodes with changed colors, the changed colorof the synopsis node being a combination of the changed colors of thechanged component nodes.
 17. A computer-implemented method comprising:rendering, on a display, an interface comprising a color generator, theinterface including a synopsis node and a plurality of component nodes,each of the component nodes being associated with a respective componentcolor and the synopsis node being associated a synopsis color; receivingan input adjusting a location of the component node with respect to thesynopsis node; determining, via a processor, a change in the synopsiscolor based on the received input; and rendering, on the display, thechanged synopsis color.
 18. The computer-implemented method of claim 17,wherein the synopsis color represents a combination of the componentcolors associated with components nodes located within a boundary. 19.The computer-implemented method of claim 17, wherein each component nodeis associated with a halo, the radius of the halo corresponding to thedistance between the respective component node and the synopsis node.20. The computer-implemented method of claim 19, further comprising:rendering the halos of each of the component nodes, each halo having ahalo color corresponding to the component color; and rendering aconvergence of the halos where the halos of at least two of thecomponent nodes intersect, the convergence having a convergence colorrepresenting a combination of the halo colors of the intersecting halos.21. The computer-implemented method of claim 20, wherein each halo coloris associated with a luminosity, the luminosity corresponding to thedistance between the respective component node and the synopsis node andthe luminosity determining an amount of influence of the halo color onthe convergence color.
 22. The computer-implemented method of claim 17,further comprising: receiving an input for operating in an additivemode; determining a change in the synopsis color based on the receivedinput; and rendering the changed synopsis color in the synopsis node.23. The computer-implemented method of claim 17, further comprising:receiving an input for operating in a blurred mode; in response to thereceived input, bluning the component colors; determining a change inthe synopsis color based on the blurred component colors; and renderingthe changed synopsis color in the synopsis node.
 24. A non-transitorycomputer-readable medium on which is encoded program code, the programcode comprising: program code for rendering a color generator on a userinterface, the color generator comprising a plurality of component nodesand a synopsis node, each component node being associated with acomponent color and the synopsis node being associated with a synopsiscolor; program code for rendering a halo associated with each componentnode located within a boundary, the halo having a halo color thatcorresponds to the component color and having a radius that correspondsto a distance between the respective component node and the synopsisnode; program code for rendering a convergence of the halos, theconvergence area having a convergence color that represents acombination of all the halo colors involved in the convergence; andprogram code for modifying the synopsis color to correspond to theconvergence color.
 25. The non-transitory computer-readable medium ofclaim 24, further comprising: program code for determining a luminosityfor each halo color, the luminosity being based at least in part on thedistance between the respective component node and the synopsis node;and program code for adjusting the halo color of each halo to correspondto the determined luminosity;
 26. The non-transitory computer-readablemedium of claim 24, further comprising: program code for receiving aninput to modify the synopsis color; and program code for rendering achange in the synopsis color based on the received input.
 27. Thenon-transitory computer-readable medium of claim 26, wherein the inputto modify the synopsis color comprises at least one of an input tomodify the distance between one of the component nodes and the synopsisnode or an input to modify a location of one of the component nodes withrespect to the synopsis node.